package com.demo.cloud.security.gateway.config;

import com.demo.cloud.security.gateway.filter.AuthFilter;
import com.netflix.zuul.ZuulFilter;
import org.apache.catalina.filters.CorsFilter;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.Ordered;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;

@Configuration
public class ZuulConfig {

    @Bean
    public ZuulFilter zuulFilter(){
        return new AuthFilter();
    }

//    @Bean
//    public FilterRegistrationBean corsFilter(){
//        final UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
//        final CorsConfiguration config = new CorsConfiguration();
//        //允许跨域
//        config.setAllowCredentials(true);
//        //允许向该服务器提交请求的URI,*表示全部
//        config.addAllowedOrigin("*");
//        //允许访问的头信息,*表示全部
//        config.addAllowedHeader("*");
//        //允许的method
//        config.addAllowedMethod("*");
//        config.setMaxAge(18000L);
//        source.registerCorsConfiguration("/**", config);
//        // todo 解决corsFilter的问题
//        CorsFilter corsFilter = new CorsFilter();
//        FilterRegistrationBean bean = new FilterRegistrationBean(corsFilter);
//        bean.setOrder(Ordered.HIGHEST_PRECEDENCE);
//        return bean;
//    }
}
